package com.game.ball;

import java.awt.*;

/**
 * 代表游戏中的挡板。
 * <p>
 * 这个类负责管理挡板的位置和绘制。
 */
public class Paddle {
    private int x, y;
    private final int width, height;

    /**
     * 构造一个新的挡板对象。
     *
     * @param x      挡板的初始 X 坐标
     * @param y      挡板的初始 Y 坐标
     * @param width  挡板的宽度
     * @param height 挡板的高度
     */
    public Paddle(int x, int y, int width, int height) {
        this.x = x;
        this.y = y;
        this.width = width;
        this.height = height;

    }

    /**
     * 移动挡板。
     * <p>
     * 根据鼠标位置更新挡板的位置。
     *
     * @param mouseX 鼠标的 X 坐标
     */
    public void move(int mouseX) {
        System.out.println("Moving paddle to: " + mouseX);
        x = mouseX - width / 2;
        if (x < 0) {
            x = 0;
        } else if (x + width > Constants.WIDTH) {
            x = Constants.WIDTH - width;
        }
    }

    /**
     * 绘制挡板。
     *
     * @param g 用于绘制的 Graphics 对象
     */
    public void draw(Graphics g) {
        g.setColor(Color.WHITE);
        g.fillRect(x, y, width, height);
    }

    /**
     * 获取挡板的边界矩形。
     *
     * @return 挡板的边界矩形
     */
    public Rectangle getBounds() {
        return new Rectangle(x, y, width, height);
    }
}